#!/bin/bash
# Copyright (c) 2015, Daniel Black. All rights reserved.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; version 2 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335  USA
#
# PURPOSE:
#
# Used to generate a mariadb.service file based on the current mysql/mariadb settings
#
# This is to assist distro maintainers in migrating to systemd service definations from
# a user mysqld_safe settings in the my.cnf files.
#
# Redirect output to user directory like /etc/systemd/system/mariadb.service.d/migrated-from-my.cnf-settings.conf

tz_old=$TZ

. /usr/bin/mariadbd-safe --dry-run

echo "# converted using $0"
echo "#"
echo

echo '[Service]'

echo


if [[ ( ! -z "$user" && "$user" != "root" && "$user" != "mysql" ) || "${SET_USER}" == 1 ]]; then
  echo User=$user
fi


[ -n "${open_files}" ] && echo LimitNOFILE=$open_files
[ -n "${core_file_size}" ] && echo LimitCORE=$core_file_size
[[ "${niceness}" -gt 0 ]] && echo Nice=$niceness
[ "${TZ}" != "${tz_old}" ] && echo Environment=\"TZ=${TZ}\"

if [ -n "$mysqld_ld_preload" ]; then
  new_text="$mysqld_ld_preload"
  [ -n "$LD_PRELOAD" ] && new_text="$new_text $LD_PRELOAD"
  echo Environment=\"LD_PRELOAD=`shell_quote_string "$new_text"`\"
fi

if [ -n "$mysqld_ld_library_path" ]; then
  new_text="$mysqld_ld_library_path"
  [ -n "$LD_LIBRARY_PATH" ] && new_text="$new_text:$LD_LIBRARY_PATH"
  echo Environment=\"LD_LIBRARY_PATH=`shell_quote_string "$new_text"`\"
fi

if [[ $want_syslog -eq 1 ]]; then
  echo StandardOutput=syslog
  echo StandardError=syslog
  echo SyslogFacility=daemon
  echo SyslogLevel=err
  echo SyslogIdentifier=${syslog_tag_mysqld}
fi

if [[ "${flush_caches}" -gt 0  ]]; then
  echo ExecStartPre=/usr/bin/sync
  echo ExecStartPre=/usr/sbin/sysctl -q -w vm.drop_caches=3
fi

if [[ "${numa_interleave}" -gt 0 ]]; then
  echo
  echo ExecStart=/usr/bin/numactl --interleave=all ${cmd} '${MYSQLD_OPTS}'
  echo
fi

if [ -n "${CRASH_SCRIPT}" ]; then
  echo FailureAction=${CRASH_SCRIPT}
fi
